//给你一个长度为 n 的整数数组 nums。 
//
// 如果存在索引 0 < p < q < n − 1，使得数组满足以下条件，则称其为 三段式数组（trionic）： 
//
// 
// nums[0...p] 严格 递增， 
// nums[p...q] 严格 递减， 
// nums[q...n − 1] 严格 递增。 
// 
//
// 如果 nums 是三段式数组，返回 true；否则，返回 false。 
//
// 
//
// 示例 1: 
//
// 
// 输入: nums = [1,3,5,4,2,6] 
// 
//
// 输出: true 
//
// 解释: 
//
// 选择 p = 2, q = 4： 
//
// 
// nums[0...2] = [1, 3, 5] 严格递增 (1 < 3 < 5)。 
// nums[2...4] = [5, 4, 2] 严格递减 (5 > 4 > 2)。 
// nums[4...5] = [2, 6] 严格递增 (2 < 6)。 
// 
//
// 示例 2: 
//
// 
// 输入: nums = [2,1,3] 
// 
//
// 输出: false 
//
// 解释: 
//
// 无法选出能使数组满足三段式要求的 p 和 q 。 
//
// 
//
// 提示: 
//
// 
// 3 <= n <= 100 
// -1000 <= nums[i] <= 1000 
// 
//
// Related Topics 数组 👍 3 👎 0


package LeetCode.editor.cn;

/**
 * @author ldltd
 * @date 2025-08-30 23:55:14
 * @description 3637.三段式数组 I
 */
public class TrionicArrayI{
	 public static void main(String[] args) {
	 	 //测试代码
	 	 TrionicArrayI fun=new TrionicArrayI();
	 	 Solution solution = fun.new Solution();

	 }
	 
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
		 // 也可以统计有几次转弯
    public boolean isTrionic1(int[] nums) {
        int step=0;
		for (int i = 1; i < nums.length; i++) {
			// 0 开始 1 递增 2 递减 3 递增
			if(step==0){
				if (nums[i]>nums[i - 1]) {
					step=1;
					continue;
				}else return false;
			}
			if(step==1){
				if (nums[i]< nums[i - 1]) {
					step=2;
					continue;
				} else if(nums[i]== nums[i - 1]) return false;
			}
			if(step==2){
				if (nums[i]> nums[i - 1]) {
					step=3;
					continue;
				}else if(nums[i]== nums[i - 1]) return false;
			}
			if(step==3){
				if (nums[i]<= nums[i - 1]) {
					return false;
				}
			}

		}
		return step==3;
    }
	public boolean isTrionic(int[] nums) {
		if (nums[0] >= nums[1]) { // 一开始必须是递增的
			return false;
		}
		int cnt = 1;
		for (int i = 2; i < nums.length; i++) {
			if (nums[i - 1] == nums[i]) {
				return false;
			}
//			if ((nums[i - 2] < nums[i - 1]) != (nums[i - 1] < nums[i])) {
//				cnt++;
//			}
			cnt+=((nums[i - 2] < nums[i - 1]) ^ (nums[i - 1] < nums[i]))?1:0;
		}
		return cnt == 3; // 一定是增减增
	}
}
//leetcode submit region end(Prohibit modification and deletion)

}
